package br.com.conciliador.download.vo;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;

import br.com.conciliador.download.vo.filtro.FiltroGerarArquivoBaixaVo;
import br.com.r2.util.tipodado.Data;
import br.com.r2.util.tipodado.Inteiro;
import br.com.r2.util.tipodado.InteiroLongo;
import br.com.r2.util.tipodado.Moeda;
import br.com.r2.util.tipodado.Texto;

@Entity
@Table(name = "VWGAB")
@Proxy(lazy = true)
public class GerarArquivoBaixaVo implements Serializable
{
   /**
    * 
    */
   private static final long serialVersionUID = 1568880894101218531L;

   @Id
   @Column(name = "CODIGO")
   @GeneratedValue(generator = "InteiroSequenceGenerator")
   @GenericGenerator(name = "InteiroSequenceGenerator", strategy = "br.com.r2.util.tipodado.hibernate.generator.InteiroSequenceGenerator")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo codigo;

   @Column(name = "DATA_PAGAMENTO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.DataUT")
   private Data dataPagamento;

   @Column(name = "DATA_VENDA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.DataUT")
   private Data dataVenda;

   @Column(name = "DATA_CREDITO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.DataUT")
   private Data dataCredito;

   @Column(name = "LOJA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo loja;

   @Column(name = "NOME_LOJA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto nomeLoja;

   @Column(name = "BANDEIRA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo bandeira;

   @Column(name = "NOME_BANDEIRA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto nomeBandeira;

   @Column(name = "PRODUTO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo produto;

   @Column(name = "NOME_PRODUTO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto nomeProduto;

   @Column(name = "NATUREZA_PRODUTO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroUT")
   private Inteiro naturezaProduto;

   @Column(name = "NSU")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroUT")
   private Inteiro nsu;

   @Column(name = "PLANO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroUT")
   private Inteiro plano;

   @Column(name = "AUTORIZACAO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto autorizacao;

   @Column(name = "PARCELA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroUT")
   private Inteiro parcela;

   @Column(name = "LOTE")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo numeroResumoVenda;

   @Column(name = "BANCO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroUT")
   private Inteiro banco;

   @Column(name = "AGENCIA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroUT")
   private Inteiro agencia;

   @Column(name = "CONTA")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroUT")
   private Inteiro conta;

   @Column(name = "SITUACAO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.InteiroLongoUT")
   private InteiroLongo situacao;

   @Column(name = "DESCRICAO_SITUACAO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto descricaoSituacao;

   @Column(name = "DADOS_CLIENTE")
   @Type(type = "br.com.r2.util.tipodado.hibernate.TextoUT")
   private Texto dadosCliente;

   @Column(name = "VALOR_BRUTO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.MoedaUT")
   private Moeda valorBruto;

   @Column(name = "VALOR_PAGO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.MoedaUT")
   private Moeda valorPago;

   @Column(name = "VALOR_TAXA_ADMINISTRACAO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.MoedaUT")
   private Moeda valorTaxaAdministracao;

   @Column(name = "VALOR_TAXA_ANTECIPACAO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.MoedaUT")
   private Moeda valorTaxaAntecipacao;

   @Column(name = "VALOR_LIQUIDO")
   @Type(type = "br.com.r2.util.tipodado.hibernate.MoedaUT")
   private Moeda valorLiquido;

   @Transient
   private FiltroGerarArquivoBaixaVo filtro;

   @Transient
   private Moeda valorPagoAdministracao;

   @Transient
   private Moeda valorPagoAntecipacao;

   public InteiroLongo getCodigo()
   {
      return codigo;
   }

   public void setCodigo(InteiroLongo codigo)
   {
      this.codigo = codigo;
   }

   public Data getDataPagamento()
   {
      return dataPagamento;
   }

   public void setDataPagamento(Data dataPagamento)
   {
      this.dataPagamento = dataPagamento;
   }

   public InteiroLongo getLoja()
   {
      return loja;
   }

   public void setLoja(InteiroLongo loja)
   {
      this.loja = loja;
   }

   public Texto getNomeLoja()
   {
      return nomeLoja;
   }

   public void setNomeLoja(Texto nomeLoja)
   {
      this.nomeLoja = nomeLoja;
   }

   public InteiroLongo getBandeira()
   {
      return bandeira;
   }

   public void setBandeira(InteiroLongo bandeira)
   {
      this.bandeira = bandeira;
   }

   public Texto getNomeBandeira()
   {
      return nomeBandeira;
   }

   public void setNomeBandeira(Texto nomeBandeira)
   {
      this.nomeBandeira = nomeBandeira;
   }

   public InteiroLongo getProduto()
   {
      return produto;
   }

   public void setProduto(InteiroLongo produto)
   {
      this.produto = produto;
   }

   public Texto getNomeProduto()
   {
      return nomeProduto;
   }

   public void setNomeProduto(Texto nomeProduto)
   {
      this.nomeProduto = nomeProduto;
   }

   public Inteiro getNsu()
   {
      return nsu;
   }

   public void setNsu(Inteiro nsu)
   {
      this.nsu = nsu;
   }

   public Inteiro getPlano()
   {
      return plano;
   }

   public void setPlano(Inteiro plano)
   {
      this.plano = plano;
   }

   public Texto getAutorizacao()
   {
      return autorizacao;
   }

   public void setAutorizacao(Texto autorizacao)
   {
      this.autorizacao = autorizacao;
   }

   public Texto getDadosCliente()
   {
      return dadosCliente;
   }

   public void setDadosCliente(Texto dadosCliente)
   {
      this.dadosCliente = dadosCliente;
   }

   public Moeda getValorBruto()
   {
      return valorBruto;
   }

   public void setValorBruto(Moeda valorBruto)
   {
      this.valorBruto = valorBruto;
   }

   public Moeda getValorPago()
   {
      return valorPago;
   }

   public void setValorPago(Moeda valorPago)
   {
      this.valorPago = valorPago;
   }

   public Moeda getValorTaxaAdministracao()
   {
      return valorTaxaAdministracao;
   }

   public void setValorTaxaAdministracao(Moeda valorTaxaAdministracao)
   {
      this.valorTaxaAdministracao = valorTaxaAdministracao;
   }

   public Moeda getValorTaxaAntecipacao()
   {
      return valorTaxaAntecipacao;
   }

   public void setValorTaxaAntecipacao(Moeda valorTaxaAntecipacao)
   {
      this.valorTaxaAntecipacao = valorTaxaAntecipacao;
   }

   public FiltroGerarArquivoBaixaVo getFiltro()
   {
      return filtro;
   }

   public void setFiltro(FiltroGerarArquivoBaixaVo filtro)
   {
      this.filtro = filtro;
   }

   public InteiroLongo getSituacao()
   {
      return situacao;
   }

   public void setSituacao(InteiroLongo situacao)
   {
      this.situacao = situacao;
   }

   public Texto getDescricaoSituacao()
   {
      return descricaoSituacao;
   }

   public void setDescricaoSituacao(Texto descricaoSituacao)
   {
      this.descricaoSituacao = descricaoSituacao;
   }

   public Data getDataVenda()
   {
      return dataVenda;
   }

   public void setDataVenda(Data dataVenda)
   {
      this.dataVenda = dataVenda;
   }

   public Data getDataCredito()
   {
      return dataCredito;
   }

   public void setDataCredito(Data dataCredito)
   {
      this.dataCredito = dataCredito;
   }

   public Inteiro getParcela()
   {
      return parcela;
   }

   public void setParcela(Inteiro parcela)
   {
      this.parcela = parcela;
   }

   public InteiroLongo getNumeroResumoVenda()
   {
      return numeroResumoVenda;
   }

   public void setNumeroResumoVenda(InteiroLongo numeroResumoVenda)
   {
      this.numeroResumoVenda = numeroResumoVenda;
   }

   public Inteiro getBanco()
   {
      return banco;
   }

   public void setBanco(Inteiro banco)
   {
      this.banco = banco;
   }

   public Inteiro getAgencia()
   {
      return agencia;
   }

   public void setAgencia(Inteiro agencia)
   {
      this.agencia = agencia;
   }

   public Inteiro getConta()
   {
      return conta;
   }

   public void setConta(Inteiro conta)
   {
      this.conta = conta;
   }

   public Moeda getValorLiquido()
   {
      return valorLiquido;
   }

   public void setValorLiquido(Moeda valorLiquido)
   {
      this.valorLiquido = valorLiquido;
   }

   public Moeda getValorPagoAdministracao()
   {
      return valorPagoAdministracao;
   }

   public void setValorPagoAdministracao(Moeda valorPagoAdministracao)
   {
      this.valorPagoAdministracao = valorPagoAdministracao;
   }

   public Moeda getValorPagoAntecipacao()
   {
      return valorPagoAntecipacao;
   }

   public void setValorPagoAntecipacao(Moeda valorPagoAntecipacao)
   {
      this.valorPagoAntecipacao = valorPagoAntecipacao;
   }

   public Inteiro getNaturezaProduto()
   {
      return naturezaProduto;
   }

   public void setNaturezaProduto(Inteiro naturezaProduto)
   {
      this.naturezaProduto = naturezaProduto;
   }

}
